A complete Example
import pandas as pd
import matplotlib.pyplot as plt
sales = pd.read_csv("sales.csv")
products = pd.read_csv("products.csv")
df = sales.merge(products,on='Product_ID')
print(df)
#Feature Engineering
df["Sales"] = df["Quantity"] * df["Price"]
#summaries Mean and total
print(f"Sales SUM:{df['Sales'].sum()}")
print(f"Sales Average:{df['Sales'].mean()}")
#Filtering: Show transactions with sales above 100.
print(f"Sales more than 100:{df[df["Sales"] > 100]}")
pivot = pd.pivot_table(
df,
values='Sales',
index='Product',
aggfunc='sum'
)
print(pivot)
#Daily Sales
daily = df.groupby("Date")["Sales"].sum()
print(daily)
#Moving Average
daily = daily.reset_index()
daily["MA_2"] = daily["Sales"].rolling(2).mean()
print(daily)
#Dashboard Components
"""
Sales SUM:1150.0
Sales Average:191.66666666666666
Students should write conclusions like:
Total sales during the study period were Rs. 1,150.
Books contributed approximately 78% of total revenue.
The highest sales occurred on 2026-01-03.
The moving average indicates an increasing sales trend.
Management should focus on promoting books because they generate the highest revenue.
Pencil sales are relatively low and may require promotional activities.
"""
#Dashboard
plt.subplot(2,2,1)
pivot.plot(
kind='bar',
legend=False,
ax=plt.gca()
)
plt.title("Sales by Product")
plt.ylabel("Revenue")
#chart 2
plt.subplot(2,2,2)
plt.plot(
daily['Date'],
daily['Sales'],
marker='o',)
plt.title("Daily Sales Trend")
plt.ylabel("Sales")
#chart 3
plt.subplot(2,2,3)
plt.pie(
pivot['Sales'],
labels=pivot.index,
autopct='%1.1f%%',
)
plt.title("Revenue Distribution")
#chart 4
plt.subplot(2,2,4)
qty = df.groupby('Product')['Quantity'].sum()
qty.plot(
kind='bar',
ax=plt.gca()
)
plt.title("Quantity Sold")
plt.ylabel("Units")
plt.tight_layout()
plt.show()